package com.dragon.modules.yuegou.entity.member;

import com.baomidou.mybatisplus.annotation.TableName;
import com.dragon.modules.yuegou.enums.member.TemplateGradeParamParamType;
import com.dragon.modules.yuegou.enums.member.TemplateGradeParamTimeAccuracy;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 会员卡等级条件参数表实体类<br>
 * 对应的表为：mem_template_grade_param<br>
 * 
 * @author pbuilder generated
 * @date 2022-03-02 15:17:41
 * @company sgy
 * @version 2.0
 */
@TableName("mem_template_grade_param")
@ApiModel(description = "会员卡等级条件参数表")
public class TemplateGradeParamEntity {

    /** 主键 */
	@ApiModelProperty("主键")
	protected String id;

    /** 前端页面设置id */
	@ApiModelProperty("前端页面设置id")
	protected String paramId;

    /** 商圈id */
	@ApiModelProperty("商圈id")
	protected String busdId;

    /** 会员卡模板设置id */
	@ApiModelProperty("会员卡模板设置id")
	protected String templateSetId;

    /** 会员卡等级设置id */
	@ApiModelProperty("会员卡等级设置id")
	protected String templateGradeId;

    /** [枚举]等级条件：1-线上消费金额-ONLINE_MONEY、2-最近消费次数-CONSUME_TIMES、3-线下积分-OFFLINE_SCORE、4-线下消费金额-OFFLINE_MONEY、5-线下最近消费次数-OFFLINE_TIMES、6-线上积分-ONLINE_SCORE */
	@ApiModelProperty("[枚举]等级条件：1-线上消费金额-ONLINE_MONEY、2-最近消费次数-CONSUME_TIMES、3-线下积分-OFFLINE_SCORE、4-线下消费金额-OFFLINE_MONEY、5-线下最近消费次数-OFFLINE_TIMES、6-线上积分-ONLINE_SCORE")
	protected TemplateGradeParamParamType paramType;

    /** 累计金额/次数/积分 */
	@ApiModelProperty("累计金额/次数/积分")
	protected BigDecimal amount;

    /** [枚举]时间精度：0-累计-ALL、1-年-YEAR、2-月-MONTH、3-日-DAY */
	@ApiModelProperty("[枚举]时间精度：0-累计-ALL、1-年-YEAR、2-月-MONTH、3-日-DAY")
	protected TemplateGradeParamTimeAccuracy timeAccuracy;

    /** 时间大小 */
	@ApiModelProperty("时间大小")
	protected Integer timeSize;

    /** 名称 */
	@ApiModelProperty("名称")
	protected String name;

    /** 创建人id */
	@ApiModelProperty("创建人id")
	protected String createdBy;

    /** 创建人 */
	@ApiModelProperty("创建人")
	protected String createdName;

    /** 创建时间 */
	@ApiModelProperty("创建时间")
	protected LocalDateTime createdTime;

    /** 修改人id */
	@ApiModelProperty("修改人id")
	protected Long modifyBy;

    /** 修改人 */
	@ApiModelProperty("修改人")
	protected String modifyName;

    /** 修改时间 */
	@ApiModelProperty("修改时间")
	protected LocalDateTime modifyTime;

    /** 是否删除：0-false-未删除、1-true-已删除 */
	@ApiModelProperty("是否删除：0-false-未删除、1-true-已删除")
	protected Integer del;

    /** 删除人ID */
	@ApiModelProperty("删除人ID")
	protected String delBy;

    /** 删除时间 */
	@ApiModelProperty("删除时间")
	protected LocalDateTime delTime;

	/**
	 * 构造一个空会员卡等级条件参数表实体对象
	 */
	public TemplateGradeParamEntity(){
		super();
	}

	/**
	 * 依据其它对象的信息构造一个会员卡等级条件参数表实体对象
	 * 
	 * @param other 其它对象
	 */
	public TemplateGradeParamEntity(TemplateGradeParamEntity other){
		super();
     	this.id = other.id;
     	this.paramId = other.paramId;
     	this.busdId = other.busdId;
     	this.templateSetId = other.templateSetId;
     	this.templateGradeId = other.templateGradeId;
     	this.paramType = other.paramType;
     	this.amount = other.amount;
     	this.timeAccuracy = other.timeAccuracy;
     	this.timeSize = other.timeSize;
     	this.name = other.name;
     	this.createdBy = other.createdBy;
     	this.createdName = other.createdName;
     	this.createdTime = other.createdTime;
     	this.modifyBy = other.modifyBy;
     	this.modifyName = other.modifyName;
     	this.modifyTime = other.modifyTime;
     	this.del = other.del;
     	this.delBy = other.delBy;
     	this.delTime = other.delTime;
	}


	/**
	 * 获取主键
	 * 
	 * @return id 主键
	 */
	public String getId() {
		return id;
	}
  	
	/**
	 * 设置主键
	 * 
	 * @param id 主键
	 */
	public void setId(String id) {
		this.id = id;
	}

	/**
	 * 获取前端页面设置id
	 * 
	 * @return paramId 前端页面设置id
	 */
	public String getParamId() {
		return paramId;
	}
  	
	/**
	 * 设置前端页面设置id
	 * 
	 * @param paramId 前端页面设置id
	 */
	public void setParamId(String paramId) {
		this.paramId = paramId;
	}

	/**
	 * 获取商圈id
	 * 
	 * @return busdId 商圈id
	 */
	public String getBusdId() {
		return busdId;
	}
  	
	/**
	 * 设置商圈id
	 * 
	 * @param busdId 商圈id
	 */
	public void setBusdId(String busdId) {
		this.busdId = busdId;
	}

	/**
	 * 获取会员卡模板设置id
	 * 
	 * @return templateSetId 会员卡模板设置id
	 */
	public String getTemplateSetId() {
		return templateSetId;
	}
  	
	/**
	 * 设置会员卡模板设置id
	 * 
	 * @param templateSetId 会员卡模板设置id
	 */
	public void setTemplateSetId(String templateSetId) {
		this.templateSetId = templateSetId;
	}

	/**
	 * 获取会员卡等级设置id
	 * 
	 * @return templateGradeId 会员卡等级设置id
	 */
	public String getTemplateGradeId() {
		return templateGradeId;
	}
  	
	/**
	 * 设置会员卡等级设置id
	 * 
	 * @param templateGradeId 会员卡等级设置id
	 */
	public void setTemplateGradeId(String templateGradeId) {
		this.templateGradeId = templateGradeId;
	}

	/**
	 * 获取[枚举]等级条件：1-线上消费金额-ONLINE_MONEY、2-最近消费次数-CONSUME_TIMES、3-线下积分-OFFLINE_SCORE、4-线下消费金额-OFFLINE_MONEY、5-线下最近消费次数-OFFLINE_TIMES、6-线上积分-ONLINE_SCORE
	 * 
	 * @return paramType [枚举]等级条件：1-线上消费金额-ONLINE_MONEY、2-最近消费次数-CONSUME_TIMES、3-线下积分-OFFLINE_SCORE、4-线下消费金额-OFFLINE_MONEY、5-线下最近消费次数-OFFLINE_TIMES、6-线上积分-ONLINE_SCORE
	 */
	public TemplateGradeParamParamType getParamType() {
		return paramType;
	}
  	
	/**
	 * 设置[枚举]等级条件：1-线上消费金额-ONLINE_MONEY、2-最近消费次数-CONSUME_TIMES、3-线下积分-OFFLINE_SCORE、4-线下消费金额-OFFLINE_MONEY、5-线下最近消费次数-OFFLINE_TIMES、6-线上积分-ONLINE_SCORE
	 * 
	 * @param paramType [枚举]等级条件：1-线上消费金额-ONLINE_MONEY、2-最近消费次数-CONSUME_TIMES、3-线下积分-OFFLINE_SCORE、4-线下消费金额-OFFLINE_MONEY、5-线下最近消费次数-OFFLINE_TIMES、6-线上积分-ONLINE_SCORE
	 */
	public void setParamType(TemplateGradeParamParamType paramType) {
		this.paramType = paramType;
	}

	/**
	 * 获取累计金额/次数/积分
	 * 
	 * @return amount 累计金额/次数/积分
	 */
	public BigDecimal getAmount() {
		return amount;
	}
  	
	/**
	 * 设置累计金额/次数/积分
	 * 
	 * @param amount 累计金额/次数/积分
	 */
	public void setAmount(BigDecimal amount) {
		this.amount = amount;
	}

	/**
	 * 获取[枚举]时间精度：0-累计-ALL、1-年-YEAR、2-月-MONTH、3-日-DAY
	 * 
	 * @return timeAccuracy [枚举]时间精度：0-累计-ALL、1-年-YEAR、2-月-MONTH、3-日-DAY
	 */
	public TemplateGradeParamTimeAccuracy getTimeAccuracy() {
		return timeAccuracy;
	}
  	
	/**
	 * 设置[枚举]时间精度：0-累计-ALL、1-年-YEAR、2-月-MONTH、3-日-DAY
	 * 
	 * @param timeAccuracy [枚举]时间精度：0-累计-ALL、1-年-YEAR、2-月-MONTH、3-日-DAY
	 */
	public void setTimeAccuracy(TemplateGradeParamTimeAccuracy timeAccuracy) {
		this.timeAccuracy = timeAccuracy;
	}

	/**
	 * 获取时间大小
	 * 
	 * @return timeSize 时间大小
	 */
	public Integer getTimeSize() {
		return timeSize;
	}
  	
	/**
	 * 设置时间大小
	 * 
	 * @param timeSize 时间大小
	 */
	public void setTimeSize(Integer timeSize) {
		this.timeSize = timeSize;
	}

	/**
	 * 获取名称
	 * 
	 * @return name 名称
	 */
	public String getName() {
		return name;
	}
  	
	/**
	 * 设置名称
	 * 
	 * @param name 名称
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * 获取创建人id
	 * 
	 * @return createdBy 创建人id
	 */
	public String getCreatedBy() {
		return createdBy;
	}
  	
	/**
	 * 设置创建人id
	 * 
	 * @param createdBy 创建人id
	 */
	public void setCreatedBy(String createdBy) {
		this.createdBy = createdBy;
	}

	/**
	 * 获取创建人
	 * 
	 * @return createdName 创建人
	 */
	public String getCreatedName() {
		return createdName;
	}
  	
	/**
	 * 设置创建人
	 * 
	 * @param createdName 创建人
	 */
	public void setCreatedName(String createdName) {
		this.createdName = createdName;
	}

	/**
	 * 获取创建时间
	 * 
	 * @return createdTime 创建时间
	 */
	public LocalDateTime getCreatedTime() {
		return createdTime;
	}
  	
	/**
	 * 设置创建时间
	 * 
	 * @param createdTime 创建时间
	 */
	public void setCreatedTime(LocalDateTime createdTime) {
		this.createdTime = createdTime;
	}

	/**
	 * 获取修改人id
	 * 
	 * @return modifyBy 修改人id
	 */
	public Long getModifyBy() {
		return modifyBy;
	}
  	
	/**
	 * 设置修改人id
	 * 
	 * @param modifyBy 修改人id
	 */
	public void setModifyBy(Long modifyBy) {
		this.modifyBy = modifyBy;
	}

	/**
	 * 获取修改人
	 * 
	 * @return modifyName 修改人
	 */
	public String getModifyName() {
		return modifyName;
	}
  	
	/**
	 * 设置修改人
	 * 
	 * @param modifyName 修改人
	 */
	public void setModifyName(String modifyName) {
		this.modifyName = modifyName;
	}

	/**
	 * 获取修改时间
	 * 
	 * @return modifyTime 修改时间
	 */
	public LocalDateTime getModifyTime() {
		return modifyTime;
	}
  	
	/**
	 * 设置修改时间
	 * 
	 * @param modifyTime 修改时间
	 */
	public void setModifyTime(LocalDateTime modifyTime) {
		this.modifyTime = modifyTime;
	}

	/**
	 * 获取是否删除：0-false-未删除、1-true-已删除
	 * 
	 * @return del 是否删除：0-false-未删除、1-true-已删除
	 */
	public Integer getDel() {
		return del;
	}
  	
	/**
	 * 设置是否删除：0-false-未删除、1-true-已删除
	 * 
	 * @param del 是否删除：0-false-未删除、1-true-已删除
	 */
	public void setDel(Integer del) {
		this.del = del;
	}

	/**
	 * 获取删除人ID
	 * 
	 * @return delBy 删除人ID
	 */
	public String getDelBy() {
		return delBy;
	}
  	
	/**
	 * 设置删除人ID
	 * 
	 * @param delBy 删除人ID
	 */
	public void setDelBy(String delBy) {
		this.delBy = delBy;
	}

	/**
	 * 获取删除时间
	 * 
	 * @return delTime 删除时间
	 */
	public LocalDateTime getDelTime() {
		return delTime;
	}
  	
	/**
	 * 设置删除时间
	 * 
	 * @param delTime 删除时间
	 */
	public void setDelTime(LocalDateTime delTime) {
		this.delTime = delTime;
	}

    public String toString() {
		return new StringBuilder().append("TemplateGradeParamEntity{").
			append("id=").append(id).
			append(",paramId=").append(paramId).
			append(",busdId=").append(busdId).
			append(",templateSetId=").append(templateSetId).
			append(",templateGradeId=").append(templateGradeId).
			append(",paramType=").append(paramType).
			append(",amount=").append(amount).
			append(",timeAccuracy=").append(timeAccuracy).
			append(",timeSize=").append(timeSize).
			append(",name=").append(name).
			append(",createdBy=").append(createdBy).
			append(",createdName=").append(createdName).
			append(",createdTime=").append(createdTime).
			append(",modifyBy=").append(modifyBy).
			append(",modifyName=").append(modifyName).
			append(",modifyTime=").append(modifyTime).
			append(",del=").append(del).
			append(",delBy=").append(delBy).
			append(",delTime=").append(delTime).
			append('}').toString();
    }

	/**
	 * 复制对象
	 * 
	 * @return 复制后的新实体对象
	 */
	public TemplateGradeParamEntity copy() {
		return new TemplateGradeParamEntity(this);
	}

    /** 主键 */
	public static final String COL_ID = "id";

    /** 前端页面设置id */
	public static final String COL_PARAM_ID = "param_id";

    /** 商圈id */
	public static final String COL_BUSD_ID = "busd_id";

    /** 会员卡模板设置id */
	public static final String COL_TEMPLATE_SET_ID = "template_set_id";

    /** 会员卡等级设置id */
	public static final String COL_TEMPLATE_GRADE_ID = "template_grade_id";

    /** [枚举]等级条件：1-线上消费金额-ONLINE_MONEY、2-最近消费次数-CONSUME_TIMES、3-线下积分-OFFLINE_SCORE、4-线下消费金额-OFFLINE_MONEY、5-线下最近消费次数-OFFLINE_TIMES、6-线上积分-ONLINE_SCORE */
	public static final String COL_PARAM_TYPE = "param_type";

    /** 累计金额/次数/积分 */
	public static final String COL_AMOUNT = "amount";

    /** [枚举]时间精度：0-累计-ALL、1-年-YEAR、2-月-MONTH、3-日-DAY */
	public static final String COL_TIME_ACCURACY = "time_accuracy";

    /** 时间大小 */
	public static final String COL_TIME_SIZE = "time_size";

    /** 名称 */
	public static final String COL_NAME = "name";

    /** 创建人id */
	public static final String COL_CREATED_BY = "created_by";

    /** 创建人 */
	public static final String COL_CREATED_NAME = "created_name";

    /** 创建时间 */
	public static final String COL_CREATED_TIME = "created_time";

    /** 修改人id */
	public static final String COL_MODIFY_BY = "modify_by";

    /** 修改人 */
	public static final String COL_MODIFY_NAME = "modify_name";

    /** 修改时间 */
	public static final String COL_MODIFY_TIME = "modify_time";

    /** 是否删除：0-false-未删除、1-true-已删除 */
	public static final String COL_DEL = "del";

    /** 删除人ID */
	public static final String COL_DEL_BY = "del_by";

    /** 删除时间 */
	public static final String COL_DEL_TIME = "del_time";
}
